iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
Web 3

以 Python 進入以太坊虛擬機 (EVM) 的幻想境界系列 第 18

虛擬境界18:介紹建立 ZKEVM 步驟

  • 分享至 

  • xImage
  •  

首先,要建立一個具有這些證明的系統,我們需要專注於以下幾個主要組件和步驟:

需要實現的部分:

  1. 完整的 EVM
    建立一個可以執行所有 Ethereum 操作的 EVM,這包括所有的 EVM opcodes,並且能夠處理各種不同的交易和合約,這我們在前半部分已經做完了。
  2. 證明系統
    建立一個可以生成和驗證證明的系統,這包括 State Proof 和 EVM Proof。這個系統需要能夠確保所有的交易和操作都是合法和有效的。
  3. 合約和交易的處理
    需要一個系統來處理和執行所有在 EVM 上的合約和交易,並且確保它們都能夠正確無誤地執行。

需要介紹的部分:

  1. 如何生成和驗證證明
    詳細介紹證明是如何生成的,以及如何確保這些證明的有效性和正確性。
  2. 系統的安全性
    介紹系統如何防止非法和惡意的行為,以及如何確保系統的安全性和可靠性。
  3. 系統的效率和擴展性
    介紹系統如何處理大量的交易,以及如何提高系統的效率和擴展性。

ZKEVM Proof 分類:

ZKEVM Proof 主要分為兩類,State Proof 和 EVM Proof。

1. State Proof

  • 主要用於確保所有的 State、Memory、和 Stack Opcode 是正確的。
  • 它不會直接檢查讀寫位置是否正確,而是允許 Prover 在 EVM Proof 中證明讀寫位置的合法性。

2. EVM Proof

  • 主要檢查所有的 opcodes 是否都在正確的時間被正確執行。
  • 它將確保 opcodes 的合法性,並與 State Proof 一同確保所有的操作都是正確和有效的。

透過這兩種 Proof,我們可以全面保障 Ethereum 虛擬機的正確性和安全性,並且能夠有效地擴展其處理能力。

Circuit as a Lookup Table

在halo2框架之中,查找功能的彈性尤為突出,它允許設計師將任何能夠被轉換為表達式的結構配置為查找目標。這意味著不同的電路可以對固定的數據集或條件進行操作,並且可以透過查找參數將其結果與其他電路相關聯。

此外,使用電路作為查找表的動機在於其高效性和對昂貴運算的處理方式。例如,Ethereum虛擬機 (EVM) 中的某些操作可能不適合直接在主電路中執行,因為它們可能涉及複雜的加密運算或隨機數據訪問。為了解決這個問題,我們可以利用查找表格的策略:將這些昂貴的操作分隔到單一目的的電路中,並且利用查找功能確保其結果可以被主電路正確讀取和驗證。

主要會做到幾件事

  • 查找參數 (Lookup Arguments): 當某些操作在電路中變得過於昂貴或複雜時,該電路可以通過查找參數將這些操作的計算"外包"給其他電路。
  • 表格 (Tables): 這些電路生成和驗證的數據結構,它們用於存儲和查詢資訊。

再來幾天會開始介紹這些東西要如何實現,明天會教大家什麼是 bus mapping

參考資料

https://hackmd.io/bF-_y4OVQMyBHQMFG7tYpA


上一篇
虛擬境界17:EVM to ZKRollup
下一篇
虛擬境界19:Bus Mapping 介紹
系列文
以 Python 進入以太坊虛擬機 (EVM) 的幻想境界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言